var TOKENONE = "PPPP";
var splitTokenONE = "UUUU";
var splitTokenFOUR = "PPPP";

function getInPar(str) {
	return str.substring((str.indexOf("(")+1),(str.indexOf(")")));
}

//取得指定版次的SVN註解內容
function getRelatedReqs(svnUrl,svnId,svnPwd,reversion) {
	$.ajax({type:"post",url:"GetRelatedReqs",async:false,dataType:"json",
		data:{svnUrl:svnUrl,svnId:svnId,svnPwd:svnPwd,reversion:reversion,localSystemId:$.cookie("localSystemId"),subsysId:$("#subsysId option:selected").val(),isReqDescNeed:$("#subsysId option:selected").attr("isReqDescNeed")},
		success : function(reses) {
			if( reses.length >0 ) {
				$("#tbodyReq tr").remove();
				$.each(reses,function(i,res) {
					var tmp="<tr class='req'><td class='center engN'><button type='button' onclick='removeReq(this)'>-</button></td><td class='idx int center'>"+($("#tbodyReqs tr").size()+1)+"</td><th><input class='engN' type='text' value='"+res.s1+"' size='14'/></th><th class='zhTwN'><textarea>"+res.s2+"</textarea></th></tr>";
					$("#tbodyReq").append(tmp);
				});
				$("#tbodyReq button").button();
			}
		}, error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});
}


//檢查是否為IP
function checkIP(ip){
	var re = /^((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))$/;
	return re.test(ip)?true:false; 
}

function closeDialog(id) {
	if ( $("#"+id).hasClass('ui-dialog-content')) { $("#"+id).dialog("close"); }
}

function rep(str) {
	var res="";
	if( str != undefined ) {
		var tmp = str.replace(new RegExp("'", 'g'), "_");
		res = tmp.replace(new RegExp("\"", 'g'), "_"); 
	}
	
	return res;
}

/**
 * 檢查這些 加入、移出
 *	按鈕是否可以被按下
 */
function chkButtonClickAble() {
	if ( $("select#inPeople option").size() > 0 ) {	//存在被選中的人，所以可以全部移出
		$("#btnRemoveAll").removeAttr("disabled");
	} else {
		$("#btnRemoveAll").attr("disabled",true);
	}
	if ( $("select#notInPeople option").size() > 0 ) {	//存在未被選中的人，所以可以加入
		$("#btnAddAll").removeAttr("disabled");
	} else {
		$("#btnAddAll").attr("disabled",true);
	}
	var isSelected = $("#inPeople option:selected").size() > 0;
	if ( isSelected ) {
		$("#btnRemoveSel").removeAttr("disabled");	
	} else {
		$("#btnRemoveSel").attr("disabled",true);
	}
	isSelected = $("#notInPeople option:selected").size() > 0;
	if ( isSelected ) {
		$("#btnAddSel").removeAttr("disabled");	
	} else {
		$("#btnAddSel").attr("disabled",true);
	}
}

/**
 * 依據 角色及子系統，改變inPeople 與 notInPeople 的人員清單
 */ 
function chgPeoList(polyType) {
	if ( $("select#subsysId  option:selected").val() != "noselect" && $("select#role  option:selected").val() != "noselect" ) {
		var systemId = $("select#systemId  option:selected").val();	//系統
		var subsysId = $("select#subsysId option:selected").val();	//子系統
		var roleId = $("select#role option:selected").val();		//角色
		var envId = "";
		if (polyType==2) {
			envId = $("select#envId option:selected").val(); 
		}
		
		$.ajax({type:"post",url:"QueryEmpsWithRole",dataType: "json",
			data : { systemId:systemId,subsysId:subsysId,roleId:roleId,polyType:polyType,envId:envId },
			success : function(reses) {
				$("select#notInPeople option").remove();
				$("select#inPeople option").remove();
				
				if ( $(reses.inList).size() >0 ) {
					$.each(reses.inList,function(i, res) {
						var tmp = "<option ondblclick=\"assignEnv('"+res.s1+"')\" sysSN='"+res.i1+"' value='"+res.s1+"'>"+res.s2+"</option>";
						$("select#inPeople").append(tmp);
					});
				}
				if ( $(reses.outList).size() >0 ) {
					$.each(reses.outList,function(i, res) {
						var tmp = "<option sysSN='"+res.i1+"' value='"+res.s1+"'>"+res.s2+"</option>";
						$("select#notInPeople").append(tmp);
					});
				}
				chkButtonClickAble();
			},error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
		});
	}
}

function chgMailList() {
	if ( $("select#mailList option:selected").val() != "noselect" && $("select#reciTypeList option:selected").val() != "noselect" && $("select#subsysId option:selected").val() != "noselect" && $("select#mailList option").size() > 1 ) {
		var systemId = $("select#systemId  option:selected").val();	//系統
		var subsysId = $("select#subsysId option:selected").val();	//子系統
		var mailId = $("select#mailList option:selected").val();		//角色
		var recipientTypeId = $("select#reciTypeList option:selected").val();
		
		$.ajax({type:"post",url:"QueryRolesWithEmail",dataType: "json",
			data : { systemId:systemId,subsysId:subsysId,mailId:mailId,recipientTypeId:recipientTypeId },
			success : function(reses) {
				$("select#notInPeople option").remove();
				$("select#inPeople option").remove();
				
				if ( $(reses.inList).size() >0 ) {
					$.each(reses.inList,function(i, res) {
						var tmp = "<option sysSN='"+res.i1+"' value='"+res.s1+"'>"+res.s2+"</option>";
						$("select#inPeople").append(tmp);
					});
				}
				if ( $(reses.outList).size() >0 ) {
					$.each(reses.outList,function(i, res) {
						var tmp = "<option sysSN='"+res.i1+"' value='"+res.s1+"'>"+res.s2+"</option>";
						$("select#notInPeople").append(tmp);
					});
				}
				chkButtonClickAble();
			},error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
		});
	} else if ( $("select#reciTypeList option:selected").val() != "noselect" && $("select#subsysId  option:selected").val() != "noselect" && $("select#mailList option").size() ==1 ) {
		$.post("QueryMailList", function(reses) {
			$("select#mailList option").remove();
			$("select#mailList").append("<option value='noselect' id='dOpt'>--請選擇--</option>");
			
			if ( $(reses).size() >0 ) {
				$("select#mailList option#dOpt").remove();
				$.each(reses,function(i, res) {
					tmp = "<option value='"+res.i1+"'>"+res.s1+"</option>";
					$("select#mailList").append(tmp);
				});
			} else {
				$("select#notInPeople option").remove();
				$("select#inPeople option").remove();
			}
		});
	}
}

function cdt() {
	var today = new Date();
	var ss = today.getSeconds();
	var HH = today.getHours();
	var min = today.getMinutes();
	var dd = today.getDate();
	var mm = today.getMonth()+1; //January is 0!
	var yyyy = today.getFullYear();
	if(dd<10){dd='0'+dd;} if(mm<10){mm='0'+mm;} if(HH<10){HH='0'+HH;} if(ss<10){ss='0'+ss;} if(min<10){min='0'+min;}
	today = yyyy+'/'+mm+'/'+dd+" &nbsp; "+HH+":"+min+":"+ss;
	return today;
}

/**	初始化畫面 **/
//pageName是該畫面的名稱
function init(pageName){
	
	if ( $.cookie("empId") == undefined && pageName != "index.html" ) {
		alert("請先進行登入");
		clearALLcookie();
		window.location = "index.html";
	}
	
	$("textarea").val("");
	
	// 加入 1. 長的錯誤訊息 2.windowFreeze 兩個對話窗
	$("html").append("<div id='errLongMsg'></div><div class='dialog' id='loading'><label for='imgLoading' class='eyecatch'> Loading...</label><br /><img id='imgLoading' src='pic/ajax-loader.gif'></div>");
	
	$(".dialog").css("visibility", "hidden");	//所有對話窗都先藏起來
	$.cookie("pageName", pageName );		//目前頁面的URL
	if ( pageName == "index.html" ) {
		$.ajax({type:"post",url:"GetLocalSystemInfo",async:false,dataType:"json",
			success : function(reses) {
				$.cookie("localSystemId",reses[0].i1);
				$.cookie("localSystemName",reses[0].s1);
			}, error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
		});
		
		document.title = "登入畫面";
		$("div#header").html( "<div><table id='banner'><tr><td rowspan='2' class='banner'><button id='btnBackToMain' type='button'>回<br><br>主<br><br>選<br><br>單</button></td><td class='banner'><h3 id='banner'>程式上線更版系統</h3></td><td rowspan='2'><img id='logout' src='pic/logout.png'></td></tr><tr><td id='actName' class='banner'>--登入畫面--</td></tr><tr class='right'><td id='user' colspan='3'>&nbsp;</td></tr></table></div><div id='outer2'><div id='sidebar2'><ul id='nav'></ul></div></div><p><p><hr><p><div id='errShortMsg' class='alert'></div><p>" );		
	} else {
		getPageInfo();
		document.title = $.cookie("pageTitle");	//頁面的中文名字
		$("div#header").html( genHeader() );		
	}
	
	$("table#banner button").button();
	$(".banner").prop("title","程式上線更版系統").bind("click",function(){ location.assign("devMenu.html"); });
	$("#logout").prop("title","登出系統").bind("click",function(){ logout(); location.assign("index.html"); });
	$("input[type='text']:first").focus();	//將游標移到第一個輸入欄位，讓使用者比較方便
}

//指定員工ID，則系統便查詢該ID(empId)，在指定頁面(pageName)下，所能查詢的子系統
function querySubsys(empId, pageName,selectId,localSystemId ) {
	var res=0;
	$.ajax({type:"post",url:"QuerySubsys",dataType:"json",async:false,
		data:{localSystemId:localSystemId,empId:empId,pageName:$.cookie("pageName")},
		success : function(reses) {
			if ( reses.length > 0 ) {	//有找到可操作的子系統
				insertSelect(selectId, reses);
				res=1;
			} else {	//沒有找到
				$(".editable").prop("disabled",true);
				$("#errShortMsg").html("抱歉，系統比對無符合您操作權限的系統");
			}
		},error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});
	return res;
}

/** 將JSON陣列的值， **/
function insertSelect(selectId, jsonArrayObj) {
	$("#"+selectId+" option").remove();
	$.each(jsonArrayObj, function(i,res){
		var tmp = "<option isReqDescNeed='"+res.s3+"' value='"+res.s1+"'>"+res.s2+" ("+res.s1+")</option>";
		$("select#"+selectId).append(tmp);	
	});
}

/** 取得指定系統參數 */
function getSysParameter() {
	var pv = "";
	$.ajax({type:"post",url:"QuerySystemParameters",dataType:"json",async:false,
		success : function(res) {
			pv= res;
		},error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});
	return pv;
}

/*	切換grid下方的  新增、修改、刪除	*/
function reconfigPermissions(isOpen,gd) {
    var ops = ['#add_'+gd, '#edit_'+gd, '#del_'+gd];
    $.each(ops, function (ix, value) {
        var $td = $(value);
        if (isOpen=='1') { $td.show(); }
        else { $td.hide(); }        
    });
}

/**	綁定 下拉吧 選擇的事件，參數url，為後端要呼叫的servlet名稱 **/ 
function selectSubSys(url) {
	
	var title = "資源群組";
	
	if ( url=="QueryEnv") {
		title="環境";
	} else if ( url=="QueryHost") {
		title="主機";
	} else if ( url=="QuerySquad") {
		title = "資源群組";
	} else if ( url=="QuerySqGroup") {
		$("#a_form #fc").val( "1" );
		title = "群組集合";
	} else if ( url=="QueryWCL") {
		$("#a_form #fc").val( "1" );
		title = "Web Console 清單";
	} else if ( url=="QueryReqJqGrid") {
		title = "需求";
	} else if ( url=="QueryEnv4Select" ) {
		title = "環境下轄主機";
	}
	
	$("#subsysId").bind("change", function(){
		var subsysId = $("select#subsysId option:selected").val();
		var subSysName = $("select#subsysId option:selected").text();
		
		jQuery("#gd").jqGrid('setGridParam',{
			url: url,
			datatype: "json",
			postData: {
				subsysId: function() { return subsysId; },
				fc: function() { return $("#a_form #fc").val(); }
			}
		}).jqGrid("setCaption","子系統："+subSysName+" 下轄"+title+"列表").trigger('reloadGrid');

		reconfigPermissions('1','gd');			
	});
}

//每個頁面初始化
function getPageInfo(){
	$.ajax({type:"post",url:"QueryPageInfo",async:false,dataType:"text",
		data : {pageName:$.cookie("pageName")},
		success : function(res) {
			var tmp = res;
			$.cookie("pageTitle",tmp);	//頁面抬頭
		}, error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});	
}

/**	登出 **/
//將所有cookie都清除，並導向登入畫面
function logout(){
	clearALLcookie();
}

/** 清除所有網頁上的cookie **/
function clearALLcookie() {
	var cookies = $.cookie();
	for(var cookie in cookies) {
	   $.removeCookie(cookie);
	}
}

/*	產生每個頁面上方的區塊	*/
function genHeader() {
	return "<div><table id='banner'><tr><td rowspan='2' class='banner'><button id='btnBackToMain' type='button'>回<br><br>主<br><br>選<br><br>單</button></td><td class='banner'><h3 id='banner'>程式上線更版系統</h3></td><td rowspan='2'><img id='logout' src='pic/logout.png'></td></tr><tr><td id='actName' class='banner'>--"+$.cookie("pageTitle")+"--</td></tr><tr class='right'><td id='user' colspan='3'>"+sayHello()+$.cookie("empName")+"</td></tr></table></div><div id='outer2'><div id='sidebar2'><ul id='nav'></ul></div></div><p><p><hr><p><div id='errShortMsg' class='alert'></div><p>";
}

/**	錯誤訊息產生 **/
//由系統所丟出的錯誤訊息
function errorAjx(xhr) {
	$("#errShortMsg").html("woops!  We've got some problem. <br>Please check the error message in the bottom of the screen.");
	$("#errLongMsg").html("http error code:"+xhr.status+"<p>"+xhr.responseText);	
}

function sayHello() {
	var res = "哩厚";
	
	var currentDate = new Date();
	if ( currentDate.getHours() < 9 && currentDate.getHours() >= 2 ) {
		res = "早安";
	} else if ( currentDate.getHours() < 11 && currentDate.getHours() >= 9 ) {
		res = "早上好";
	} else if ( currentDate.getHours() < 13 && currentDate.getHours() >= 11 ) {
		res = "午安";
	} else if ( currentDate.getHours() < 18 && currentDate.getHours() >= 13 ) {
		res = "下午好";
	} else if ( currentDate.getHours() < 2 || currentDate.getHours() >= 18 ) {
		res = "晚安";
	}
	
	res += "~ &nbsp;";
	return res;
}

//使用者執行畫面其它動作，需要將原本顯示的錯誤訊息清楚
function clearErrorMsg() {
	$("#errShortMsg").html(null);
	$("#errLongMsg").html(null);
}

/**	啟動過場動畫 **/
function windowFreeze(str){
	str = (undefined==str)?"loading":str;
	$("#loading").css("visibility", "visible").dialog({
		height : 125,
		resizable : false,
		modal : true,
		closeOnEscape : false,
		draggable : false
	}).children("label").val(str).parent().prev().hide();
	// .parent().prev().hide() 是為了移除title bar用的
}


/**
 *      確認SVN的連線是否正確
 *		@param url	SVN repo位址
 * 		@param usr	登入帳號
 * 		@param pwd	登入密碼
 * 		@returns	執行結果代號
 *		<br>創建時間：2013/10/2 下午3:07:01<br>
 *		創建人員：郭啟揚 (842297)
 */
function chkSVNconnection(url,usr,pwd) {
	var res = 0;
	$.ajax({type:"post",url:"ChkSVNconnection",async:false,dataType:"text",
		data : {url:url,usr:usr,pwd:pwd},
		success : function(reses) {
			res = reses;
		}, error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});
	
	return res;
}

//自行維護的錯誤訊息
function errorMsgShow(shortMsg,longMsg) {
	if ( undefined==shortMsg && undefined==longMsg ) {	//兩個都沒有
		$("#errShortMsg").html("woops!  We've got some problem. Please contact the administrator.");
		$("#errLongMsg").html(null);
	} else if ( undefined!=shortMsg && undefined==longMsg ) {	//只有短訊息
		$("#errShortMsg").html(shortMsg);
		$("#errLongMsg").html(null);
	} else {	//兩個都有
		$("#errShortMsg").html(shortMsg);
		$("#errLongMsg").html(longMsg);
	}
}

function refreshUI(typeId,tbodyId,isExistInd) {
	var oddColor = "#EAF4FD";
	var evenColor = "white";
	 
	if (typeId==2) {
		oddColor = "#D2E9FF";
	}
	
	if (isExistInd) {
		var num = $("#"+tbodyId+" > tr > td.idx").size();
		for (var i=0; i<num; i++) {	
			$("#"+tbodyId+" > tr > td.idx")[i].innerHTML=(i+1);
		}	
	}
	$("#"+tbodyId+" > tr:even").attr("bgcolor",evenColor);
	$("#"+tbodyId+" > tr:odd").attr("bgcolor",oddColor);
	$("#"+tbodyId+" button").button();
}

/**	關閉過場動畫 **/
function windowUnfreeze(){
	$("#loading").dialog("close").css("visibility","hidden");
}

/**	只能輸入數字
 * @param e
 * @param pnumber
 * @returns {Boolean}
 */
function validateNumber(e, pnumber)
{
	if (!/^\d+$/.test(pnumber)) {
		var newValue =/^\d+/.exec(e.value);         
		if (newValue != null) {             
        	e.value = newValue;
    	} else {          
        	e.value = "";    
    	} 
    }
	
    return false;
}


/**	查詢子系統下的需求	
 *      @param subsysId
 *      @param tbodySelector	最後選擇的需求要加入的tbody是那一個，它的selector
 *		<br>創建時間：2013/10/9 下午4:13:42<br>
 *		創建人員：郭啟揚 (842297)
 */
function queryReqINsubsys(subsysId,tName) {
	var tmp = "QueryReq";
	
	$.ajax({type:"post",url:tmp,dataType:"json",async:false,
		data:{subsysId:subsysId,empId:$.cookie("empId"),localSystemId:$.cookie("localSystemId")},
		success : function(reses) {
			if ( reses.length==0 ) {
				errorMsgShow("子系統"+subsysId+"未有任何需求被維護，請洽系統人員");
			} else {
				$("#tbodyReqPicker tr").remove();	//先將舊的記錄刪除
				$("#tableReqPickerChkALL").prop("checked",false);
				
				$.each(reses, function(i,res){
					tmp = "<tr reqSId='"+res.s2+"'>"+
						  "<td class='center'><input class='tableReqPickerChk' onclick=\"chk('tableReqPickerChk');\" type='checkbox'/></td>"+	//選擇的checkbox
						  "<td class='idx chkRow'>"+(i+1)+"</td>"+		//流水號
						  "<td class='int chkRow'>"+res.s5+"</td>"+	//需求SID
						  "<td class='chkRow'>"+res.s1+"</td>"+	//需求描述
						  "<td class='dt chkRow'>"+res.s3+"</td>"+	//創建日期
						  "<td class='chkRow'>"+res.s4+"</td>"+	//創建人員
						  "</tr>";
					$("#tbodyReqPicker").append(tmp);
					
					//檢查<chkIn.html 中的 >
					
					
					//如果原本有選的話，這裡要為它打勾
					if ( $("#tbody"+tName+" td[reqId='"+res.s2+"']").html()!=undefined ) {
						$("#tbodyReqPicker tr:last input[type='checkbox']").prop("checked", true);
					}
				});
				
				//綁定輔助點選
				$(".chkRow").bind("click",function(){
					$(this).parent("tr").children("td:first").children("input[type='checkbox']").click();
				});
				//檢查一下，如果所有子項都有勾，那chkAll也要勾
				chk("tableReqPickerChk");
				
				refreshUI(1,"tbodyReqPicker",false);
				
				$("#reqsPicker").prop("title","選擇需求").css("visibility", "visible").dialog({
					resizable:true,modal:true,show:"fold",hide:"fold",width:"800",async:false,
					buttons : {
						"確定" : function() {
							/* 將checkbox有勾選的項目，加入列表 */

							$("#tbodyReq > tr").remove();	//將原本有選的刪除
							$("input.tableReqPickerChk").each(function(i){
								if ($(this).is(":checked")) {
									var idx= $("#tbodyReq > tr").size()+1;
									var obj =$(this).parent();
									var reqSId = $(this).parent().parent().attr("reqSId");
								    var tmp = "<tr reqSId='"+reqSId+"' class='row"+tName+idx+"'>"+
									"<td class='center'><button type='button' onclick=\"removeRow(this,'"+tName+"')\">-</button></td>"+
									"<td class='idx'>"+idx+"</td>"+
									"<td reqSId='"+reqSId+"'>"+ obj.next().next().html()+"</td>"+
									"<td reqSId='"+reqSId+"'>"+ obj.next().next().next().html()+"</td>"+
									"</tr>";
									$("#tbodyReq").append(tmp);
								}
							});
							
							refreshUI(1,"tbodyReq",false);
							
							$(this).dialog("close");
						},"關閉" :function() {
							$(this).dialog("close");
						}
					}
				});
			}
		}, error : function(xhr, ajaxOptions, thrownError) { errorAjx(xhr); }
	});
}

//要為指定目標選擇需求
function addReq(tName) {
	clearErrorMsg();
	windowFreeze();
	queryReqINsubsys($("select#subsysId option:selected").val(),tName);
	windowUnfreeze();
}

/** 每筆記錄前的CheckBox **/
function chk(className) {
	
	var isChecked = true;
	$("."+className).each(function(i){
		if (!$(this).is(":checked")) {
			isChecked=false;
		}
	});
	$("#"+className+"ALL").prop("checked", isChecked);
}

/** 表格Header的CheckBox **/
function chkALL(e) {
	var chkId = $(e).attr("id");
	var className = chkId.substring(0,chkId.length-3);
	if ($(e).is(":checked")) {
		$("." + className).each(function() {
			$(this).prop("checked", true);
		});
	} else {
		$("." + className).each(function() {
			$(this).prop("checked", false);
		});
	}
}

/**	移除表格中的一筆記錄
 *      @param obj
 *      @param tName ex: tableReq, tbodyReq,則tName即是Req
 *		<br>創建時間：2013/10/9 下午3:16:43<br>
 *		創建人員：郭啟揚 (842297)
 */
function removeRow(obj,tName) {
	var rNum = $(obj).parent().next().html();	//取相對位置，不將序號寫在按鈕內，因為好讀去，但無法在刪除時更新其它的，我們用下面addClass的方式解決這個問題
	$("tr.row"+tName+rNum).remove();
	refreshUI(1,"tbody"+tName,true);
	var idx=$("#tbody"+tName+" td.idx").size();
	
	for(var i=Number(rNum); i<=idx; i++ ) { //從被刪除的那列，往後開始異動每筆的ID等內容 (ex: 共5筆，刪了第2筆，則3,4,5 這三筆的內容，都要往前移)
		nextItemNum = (i+1);

		for(var a=1;a<4;a++){
			$("label[for='radio"+a+"_"+nextItemNum+"']").prop("for","radio"+a+"_"+i);
			$("#radio"+a+"_"+nextItemNum).prop("id","radio"+a+"_"+i);
		}
		
		$("input[name='radio"+nextItemNum+"']").prop("name","radio"+i);	//將下個radio的name，改為刪掉的這個
		
		$("tr.row"+tName+nextItemNum).addClass("row"+tName+i);		//下一筆的類別，多了現在被刪除這筆的類別
		$("tr.row"+tName+i).removeClass("row"+tName+nextItemNum);	//刪除下一筆原本既有的類別 
		
		$("div.radio"+nextItemNum ).addClass("radio"+i);
		$("div.radio"+i ).removeClass("radio"+nextItemNum);
	}
}

function recoverDot(str){ 
	var res="";
	if ( str != undefined ) {
		var find=escapeRegExp("_");
		var replace=escapeRegExp(".");
		res = recoverSlash(str.replace(new RegExp(find, 'g'), replace));
	}
	return res;
}

function recoverSlash(str) {
	var res="";
	if ( str != undefined ) {
		var find=escapeRegExp(TOKENONE);
		var replace=escapeRegExp("/");
		res =  str.replace(new RegExp(find, 'g'), replace);
	}
	return res;
}

function replaceSlash(str) {
	var res="";
	if ( str != undefined ) {
		var find=escapeRegExp("/");
		var replace=escapeRegExp(TOKENONE); 
		res =  str.replace(new RegExp(find, 'g'), replace);
	}
	return res;
}

function escapeRegExp(str) {
	var res="";
	if ( str != undefined ) {
		res = str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); 
	}
	return res;
}

function replaceDot(str) {
	var res="";
	if ( str != undefined ) {
		var find=escapeRegExp(".");
		var replace=escapeRegExp("_");
		res = replaceSlash( str.replace(new RegExp(find, 'g'), replace) );
	}
	return res;
}


//是否為正整數(包含0)
function isPositiveNumaric(str) {
	var n = ~~Number(str);
    return String(n) === str && n >= 0;
}

function getLeftPar(str) {
	return str.substring(0,(str.indexOf("(")));
}